package com.alibaba.dubbo.dynamic.service.impl;

import com.alibaba.dubbo.dynamic.dao.DynamicJarDao;
import com.alibaba.dubbo.dynamic.model.Dynamic;
import com.alibaba.dubbo.dynamic.model.DynamicJar;
import com.alibaba.dubbo.dynamic.model.Jar;
import com.alibaba.dubbo.dynamic.model.query.DynamicJarExample;
import com.alibaba.dubbo.dynamic.service.DynamicJarService;
import com.alibaba.dubbo.dynamic.service.JarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * Created on 2016/8/14 07:29.
 */
@Service
public class DynamicJarServiceImpl extends BaseRestImpl<DynamicJar, DynamicJarExample, Integer> implements DynamicJarService {

    @Autowired
    private DynamicJarDao dynamicJarDao;

    @Autowired
    private JarService jarService;

    @Override
    public void setDao() {
        this.baseDao = dynamicJarDao;
    }


    public List<Jar> selectJarsByDynamicId(List<Integer> dynamicIds) {
        DynamicJarExample example = new DynamicJarExample();
        example.createCriteria().andDynamicIdIn(dynamicIds);
        List<DynamicJar> dynamicJars = dynamicJarDao.selectByExample(example);
        List<Integer> ids = new ArrayList<Integer>();
        for (DynamicJar dynamicJar : dynamicJars) {
            ids.add(dynamicJar.getJarId());
        }
        return jarService.selectByPrimaryKeys(ids);
    }

    public List<String> selectJarsUrlByDynamicId(List<Integer> dynamicIds) {
        List<Jar> jars = selectJarsByDynamicId(dynamicIds);
        List<String> urls = new ArrayList<String>();
        for (Jar jar : jars) {
            urls.add(jar.getUrl());
        }
        return urls;
    }
}